package com.mac.sys.urtils;

import org.apache.commons.lang3.StringUtils;

public class EmojiUtils
{


    private static boolean isEmojiCharacter(char codePoint)
    {
        return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA)
                || (codePoint == 0xD)
                || ((codePoint >= 0x20) && (codePoint <= 0xD7FF))
                || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD))
                || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF));
    }

    /**
     * 过滤emoji 或者 其他非文字类型的字符
     *
     * @param source
     * @return
     */
    public static String removeEmoji(String source)
    {
        if (StringUtils.isBlank(source))
        {
            return source;
        }
        StringBuilder buf = null;
        int len = source.length();
        for (int i = 0; i < len; i++)
        {
            char codePoint = source.charAt(i);
            if (isEmojiCharacter(codePoint))
            {
                if (buf == null)
                {
                    buf = new StringBuilder(source.length());
                }
                buf.append(codePoint);
            }
        }
        if (buf == null)
        {
            return source;
        } else
        {
            if (buf.length() == len)
            {
                buf = null;
                return source;
            } else
            {
                return buf.toString();
            }
        }
    }

    public static void main(String[] args)
    {
        System.out.println(EmojiUtils.removeEmoji("乌龟1232-#$%^fdas"));
    }
}
